package com.zn.bitmapDisplay
{
    import flash.utils.Dictionary;

    public class BitmapDataManager
    {
        private static var _bitmapDataVODic:Dictionary = new Dictionary();

        /**
         * key:className
         * value:BitmapDataVO
         */
        public static var bitmapDataVODic:Object = {};

        public static function addBitmapDataVOCount(bitmapDataVO:BitmapDataVO):void
        {
			if(_bitmapDataVODic[bitmapDataVO]==null)
				_bitmapDataVODic[bitmapDataVO]=0;
            _bitmapDataVODic[bitmapDataVO]++;
            saveBitmapDataVO(bitmapDataVO);
        }

        public static function removeBitmapDataVOCount(bitmapDataVO:BitmapDataVO):void
        {
            _bitmapDataVODic[bitmapDataVO]--;
            destoryBitmapDataVO(bitmapDataVO);
        }

        public static function destoryBitmapDataVO(bitmapDataVO:BitmapDataVO):void
        {
            if (_bitmapDataVODic[bitmapDataVO] <= 0 || _bitmapDataVODic[bitmapDataVO]==null)
            {
                delete bitmapDataVODic[bitmapDataVO.className];

                delete _bitmapDataVODic[bitmapDataVO];
                bitmapDataVO.destory();
            }
        }

        public static function getBitmapDataVO(className:String):BitmapDataVO
        {
            return bitmapDataVODic[className] as BitmapDataVO;
        }

        public static function saveBitmapDataVO(bitmapDataVO:BitmapDataVO):void
        {
            if (bitmapDataVODic[bitmapDataVO.className])
                return;

            bitmapDataVODic[bitmapDataVO.className] = bitmapDataVO;
        }
    }
}
